#pragma once

#include "./net.hh"

#include <span>
#include <string>
#include <string_view>
#include <vector>

namespace ycspice::preprocess {

    class Circuit;

    class Instance {
    public:
        Instance(Circuit* circuit, std::string name, std::vector<Net*> nets);
        ~Instance() noexcept {}

        auto circuit() const -> Circuit* { return this->_circuit; }
        auto name() const -> std::string_view { return this->_name; }
        auto nets() const -> std::span<Net* const> { return this->_nets; }

    private:
        Circuit* _circuit;
        std::string _name;
        std::vector<Net*> _nets;
    };

}